package com.fortune.service;

import com.fortune.dto.in.salesMan.SalesManEditDto;
import com.fortune.entity.PhoneAndPassword;
import com.fortune.entity.UserIdAndName;
import com.fortune.vo.salesMan.LoginSalesManInfo;
import org.apache.ibatis.annotations.Param;

public interface SalesManService {

    /**
     * 通过手机号获取redis里缓存的手机号
     * @param phone
     * @return
     */
    /*String getRedisKeyByPhone(String phone);*/

    /**
     * 判断账号是否存在
     * @param phone
     * @return
     */
    PhoneAndPassword finPhoneIsExist(@Param("phone") String phone);

    /**
     * 查询密码
     * @param mid
     * @param did
     * @param userId
     * @param phone
     * @return
     */
    String findPasswordByPhone(@Param("mid") String mid,
                               @Param("did") String did,
                               @Param("userId") String userId,
                               @Param("phone") String phone);

    /**
     * 查询登陆成功返回信息
     * @param phone
     * @return
     */
    LoginSalesManInfo findLoginSalesManInfo(@Param("phone") String phone);

    /**
     * 业务员修改密码
     * @param phone
     * @return
     */
    int editPasswordByPhone(@Param("mid") String mid,
                            @Param("did") String did,
                            @Param("userId") String userId,
                            @Param("phone") String phone,
                            @Param("newPassword") String newPassword);

    /**
     * 通过业务员手机号查询id
     * @param phone
     * @return
     */
    String findUserIdByPhone(@Param("phone") String phone);

    /**
     * 业务员修改个人资料
     * @param salesManEditDto
     * @param userId
     * @return
     */
    int editSalesmanEditInfor(@Param("mid") String mid,
                              @Param("did") String did,
                              @Param("salesManEditDto") SalesManEditDto salesManEditDto,
                              @Param("userId") String userId);

    /**
     * 业务员重置密码
     * @param phone
     * @param password
     * @return
     */
    int editResetPassword(@Param("phone") String phone,@Param("password") String password);

    /**
     * 查询业务员id
     * @param phone
     * @return
     */
    UserIdAndName findDUserId(String userId,String mid,String did,String phone);

    /**
     * 查询业务员每个月的目标销售数量
     * @param userId
     * @param mid
     * @param did
     * @return
     */
    String findTargetById(@Param("userId") String userId,
                          @Param("mid") String mid,
                          @Param("did") String did);

    /**
     * 查询业务员完成业绩总数
     * @param id
     * @param mid
     * @param did
     * @return
     */
    String findCompleted(@Param("id") String id,
                         @Param("mid") String mid,
                         @Param("did") String did);
}
